//写一个猜字游戏
//1.自动产生1-100的随机数字
//2.猜字
//a.猜对了,游戏结束
//b.猜错了,提示大小,继续,直到成功
//3.游戏一直玩,除非退出

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>

//void 类型不用向int类型必须要返回值
void menu()//菜单
{
    printf("*****MENU******\n");
    printf("*** 1.START ***\n");
    printf("*** 2.EXIT  ***\n");
    printf("***************\n");
}

void game()
{
    int guess=0;
    int num1=0;
    int num2=100;
    int i=1;

    //printf("取值范围:>");
    //scanf("%d%d",&num1,&num2);
    printf("选择最大值(大于0的整数):>");
    scanf("%d",&num2);


    //生成随机数
    //rand 产生一个0到0x7fff的随机数
    //rand()函数每次调用前都会查询是否调用过srand(seed)，是否给seed设定了一个值，如果有那么它会自动调用srand(seed)一次来初始化它的起始值
    //若之前没有调用srand（seed），那么系统会自动给seed赋初始值，即srand（1）自动调用它一次
    //一般用时间来当srand初始值
    //time要引用<time.h>
    
    int ret =rand() % num2 + num1 ;//要引用<strdlib.h> //有范围的随机数(范围为num1到num2)
    //printf("%d\n",ret);

    //猜数字
    printf("你猜是哪个数字? ");    
    while (1)
    {   
        scanf("%d",&guess);
        if (guess <ret)
        {
            printf("小了\n");
        } 
        else if (guess >ret)
        {
            printf("大了\n");
        }
        else
        {
            printf("对了\n正在回到开始\n");
            Sleep(1000);
            system("cls");//清屏
            break;
        }
        i+=1;
        printf("第%d次猜:>",i);
    }
    
}

int main()
{
    //彩蛋,回到菜单5次奖励原神
    int boom =0;
    int input;
    srand((unsigned int)time(NULL)*100);//要将time-t转化为unsigned int
    do
    {
        boom +=1;
        if (boom == 6)
        {
            printf("彩蛋来了!!!\n两个惊喜\n");
            Sleep(3000);
            system("start https://api.r10086.com/樱道随机图片api接口.php?图片系列=少女写真1");
            Sleep(10000);
            printf("还有原神\n");
            system("start https://autopatchcn.yuanshen.com/client_app/download/launcher/20240513153024_R4Y2Siji8AadjI0Q/pcweb/yuanshen_setup_202405121033.exe");
            break;
        }

        menu();//打印菜单
        printf("请选择:>");
        scanf("%d",&input);
        switch (input)
        {
       
        case 1:
            Sleep(200);
            printf("猜数字\n游戏开始\n");
            game();
            Sleep(500);//太快了不喜欢//S要大写
            break;
        case 2:
            Sleep(200);
            printf("退出游戏\n");
            Sleep(500);
            break;
        default:
            Sleep(200);
            printf("选择错误,重选\n \n");
            Sleep(500);
            break;
        }

    } while (input!=2);//当1时,游戏,回到菜单,当其他时,回到菜单,重选,当2时结束
    

    return 0;
}